diff --git a/cpu/ixp/cpu.c b/cpu/ixp/cpu.c
index 2a2bd50..7f9f334 100644
--- a/cpu/ixp/cpu.c
+++ b/cpu/ixp/cpu.c
@@ -34,10 +34,47 @@
 #include <command.h>
 #include <asm/arch/ixp425.h>
 
+ulong loops_per_jiffy;
+
 #ifdef CONFIG_USE_IRQ
 DECLARE_GLOBAL_DATA_PTR;
 #endif
 
+#if defined(CONFIG_DISPLAY_CPUINFO)
+int print_cpuinfo (void)
+{
+	unsigned long id;
+	int speed = 0;
+
+	asm ("mrc p15, 0, %0, c0, c0, 0":"=r" (id));
+
+	puts("CPU:   Intel IXP425 at ");
+	switch ((id & 0x000003f0) >> 4) {
+	case 0x1c:
+		loops_per_jiffy = 887467;
+		speed = 533;
+		break;
+
+	case 0x1d:
+		loops_per_jiffy = 666016;
+		speed = 400;
+		break;
+
+	case 0x1f:
+		loops_per_jiffy = 442901;
+		speed = 266;
+		break;
+	}
+
+	if (speed)
+		printf("%d MHz\n", speed);
+	else
+		puts("unknown revision\n");
+
+	return 0;
+}
+#endif /* CONFIG_DISPLAY_CPUINFO */
+
 int cpu_init (void)
 {
 	/*
@@ -48,7 +85,9 @@
 	FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;
 #endif
 
+#if (CONFIG_COMMANDS & CFG_CMD_PCI) || defined (CONFIG_PCI)
 	pci_init();
+#endif
 	return 0;
 }
 
@@ -154,3 +193,25 @@
 	return;
 }
 */
+
+#ifdef CONFIG_BOOTCOUNT_LIMIT
+
+void bootcount_store (ulong a)
+{
+	volatile ulong *save_addr = (volatile ulong *)(CFG_BOOTCOUNT_ADDR);
+
+	save_addr[0] = a;
+	save_addr[1] = BOOTCOUNT_MAGIC;
+}
+
+ulong bootcount_load (void)
+{
+	volatile ulong *save_addr = (volatile ulong *)(CFG_BOOTCOUNT_ADDR);
+
+	if (save_addr[1] != BOOTCOUNT_MAGIC)
+		return 0;
+	else
+		return save_addr[0];
+}
+
+#endif /* CONFIG_BOOTCOUNT_LIMIT */
